package com.jie.creator.singleton.demo04;
/**
 * @description:懒汉式:线程安全
 * @author: jie
 * @time: 2022/1/29 16:49
 */
public class Singleton {
    /**
     * @description:私有构造方法，避免外部创建对象
     */
    private Singleton() {}

    /**
     * @description:在成员位置创建该类的对象,当前只是声明了一个该类型的变量，并没有进行赋值
     */
    private static Singleton instance;

    /**
     * @description:对外提供静态方法获取该对象
     */
    public static synchronized Singleton getInstance() {
        //判断instance是否为Null.如果为null，说明还没有创建Singleton类的对象
        //如果没有创建，创建一个并返回，如果有直接返回
        if(instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}